影像處理中的強度變換(Intensity Transform)是對影像中的每個像素進行操作,根據其灰度或亮度值轉換來改變影像的對比度、亮度或其他視覺特性。這些變換通常應用於增強影像品質,使其更易於分析。OpenCV 是 Python 中一個常用的影像處理模組,它提供了豐富的工具來進行各種強度變換操作,如線性變換、對數變換和伽馬校正等。
線性變換(Linear Transform):
output = α * input + β
,其中 α
控制對比度,β
控制亮度。對數變換(Logarithmic Transform):
output = c * log(1 + input)
,其中 c
是常數。伽馬校正(Gamma Correction):
output = input^γ
,其中 γ
值通常在 0.5 到 2.5 之間,γ < 1
會增加亮度,γ > 1
會使影像變暗。在 OpenCV 中,這些強度變換可以輕鬆實現,以下是一些具體的範例程式碼來解釋這些轉換如何在實際中使用。
線性變換可以用來調整影像的對比度與亮度。
import cv2
import numpy as np
# 讀取影像
image = cv2.imread('Lenna.jpg', cv2.IMREAD_GRAYSCALE)
# 定義對比度與亮度係數
alpha = 1.5 # 對比度控制
beta = 50 # 亮度控制
# 進行線性變換
adjusted = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
# 顯示結果
cv2.imshow('Original Image', image)
cv2.imshow('Adjusted Image', adjusted)
cv2.waitKey(0)
cv2.destroyAllWindows()
在這個範例中,我們使用 cv2.convertScaleAbs()
函數來調整影像的亮度和對比度。調整後的影像會顯示出更高的亮度與對比。
對數變換常用於增強影像的暗部細節。
import cv2
import numpy as np
# 讀取影像
image = cv2.imread('Lenna.jpg', cv2.IMREAD_GRAYSCALE)
# 進行對數變換
c = 255 / np.log(1 + np.max(image))
log_transformed = c * (np.log(1 + image))
# 轉換為可顯示的格式
log_transformed = np.array(log_transformed, dtype=np.uint8)
# 顯示結果
cv2.imshow('Original Image', image)
cv2.imshow('Log Transformed Image', log_transformed)
cv2.waitKey(0)
cv2.destroyAllWindows()
這段程式碼展示了如何對影像進行對數變換,透過對低亮度區域進行擴展,來提升影像中暗部的細節。
伽馬校正適合用於控制影像的亮度,特別是在處理過暗或過亮的影像時。
import cv2
import numpy as np
# 讀取影像
image = cv2.imread('Lenna.jpg', cv2.IMREAD_GRAYSCALE)
# 定義伽馬值
gamma = 2.2
# 建立查找表
lookUpTable = np.empty((1,256), np.uint8)
for i in range(256):
lookUpTable[0,i] = np.clip(pow(i / 255.0, gamma) * 255.0, 0, 255)
# 應用伽馬校正
gamma_corrected = cv2.LUT(image, lookUpTable)
# 顯示結果
cv2.imshow('Original Image', image)
cv2.imshow('Gamma Corrected Image', gamma_corrected)
cv2.waitKey(0)
cv2.destroyAllWindows()
在這個範例中,我們應用了伽馬校正,並通過調整伽馬值來控制影像的亮度。較高的伽馬值會使影像變得更暗,而較低的伽馬值會增加亮度。
強度變換廣泛應用於影像增強、物件檢測、醫學影像分析等領域。例如,在醫學影像中,對數變換可以用來強化 X 光片中的暗部細節,使得病灶更加明顯。而在攝影圖像後製中,伽馬校正經常用來調整照片的曝光,以達到最佳的視覺效果。
強度變換(Intensity Transform)是影像處理中的一個基礎且重要的技術,用於改變影像的亮度、對比度和細節呈現。透過 OpenCV 提供的工具,我們可以輕鬆地實現各種強度變換,如線性變換、對數變換和伽馬校正等。這些技術不僅適用於影像的增強,還能幫助我們更好地理解和處理影像中的重要資訊。